package com.onesports.intelligent.k12.polarlight.util;

import java.math.BigDecimal;
import java.util.Date;

public class ContactUtil {

    /**
     * 检查是否在date1~date2是否在startTime~endTime时间范围内
     *
     * @param date1     开始时间
     * @param date2     结束时间
     * @param startTime 目标开始时间
     * @param endTime   目标结束时间
     */
    public static boolean checkContact(Date date1, Date date2, Date startTime, Date endTime) {
        boolean flag = (date1.before(startTime) && date2.after(startTime))
                || (date1.after(startTime) && date1.before(endTime))
                || date1.compareTo(startTime) == 0
                || date1.compareTo(endTime) == 0;
       return flag;
    }

    /**
     * 检查是否在num1~num2 区间是否跟 targetNum1~targetNum2重叠   区间1<=a<=2
     *
     * @param num1     开始时间
     * @param num2     结束时间
     * @param targetNum1 目标开始时间
     * @param targetNum2   目标结束时间
     */
    public static boolean checkContact(BigDecimal num1, BigDecimal num2, BigDecimal targetNum1, BigDecimal targetNum2) {
        BigDecimal maxLeft,minRight;

        if(num1.compareTo(targetNum1)>0){
            maxLeft=num1;
        }else{
            maxLeft=targetNum1;
        }

        if(num2.compareTo(targetNum2)<0){
            minRight=num2;
        }else{
            minRight=targetNum2;
        }

         return maxLeft.compareTo(minRight)<1;
    }

    /**
     * 检查是否在num1~num2 区间是否跟 targetNum1~targetNum2重叠   区间1<=a<2
     *
     * @param num1     开始时间
     * @param num2     结束时间
     * @param targetNum1 目标开始时间
     * @param targetNum2   目标结束时间
     */
    public static boolean checkContact2(BigDecimal num1, BigDecimal num2, BigDecimal targetNum1, BigDecimal targetNum2) {

        if(num2.compareTo(targetNum1)<1){
            return false;
        }
        if(num1.compareTo(targetNum2)>-1){
            return false;
        }
        return true;
    }


}
